package com.xnyzc.lhy.order.entity.order;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 司机接单表
 *
 * @author zhuyubin
 * @since 2019-08-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "OaDOrder对象", description = "司机接单表")
public class OaDOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "order_no", type = IdType.INPUT)
    private String orderNo;

    @ApiModelProperty(value = "滴滴ID")
    @TableField(exist = false)
    private String didiOrderId;

    @ApiModelProperty(value = "乘客订单ID")
    private String userOrderId;

    @ApiModelProperty(value = "司机userid")
    private Long driverId;

    @ApiModelProperty(value = "叫车类型")
    private Integer orderType;

    @ApiModelProperty(value = "司机接单时间")
    private Date striveTime;

    @ApiModelProperty(value = "乘车人手机号")
    private String passengerPhone;

    @ApiModelProperty(value = "出发经度")
    private String flng;

    @ApiModelProperty(value = "出发维度")
    private String flat;

    @ApiModelProperty(value = "目的地经度")
    private String tlng;

    @ApiModelProperty(value = "目的地维度")
    private String tlat;

    @ApiModelProperty(value = "实际出发地（司机点击开始的位置）")
    private String actualStartName;

    @ApiModelProperty(value = "实际目的地（司机点击结束的位置）")
    private String actualEndName;

    @ApiModelProperty(value = "实际出发地纬度（司机点击开始的位置）")
    private String actualFlat;

    @ApiModelProperty(value = "实际出发地经度（司机点击开始的位置）")
    private String actualFlng;

    @ApiModelProperty(value = "实际目的地纬度（司机点击结束的位置）")
    private String actualTlat;

    @ApiModelProperty(value = "实际目的地经度（司机点击结束的位置）")
    private String actualTlng;

    @ApiModelProperty(value = "出发时间")
    private Date departureTime;

    @ApiModelProperty(value = "开始计价时间")
    private Date beginChargeTime;

    @ApiModelProperty(value = "行程结束时间")
    private Date finishTime;

    @ApiModelProperty(value = "实际行驶公里数")
    private String normalDistance;

    @ApiModelProperty(value = "实际行驶时长（分钟）")
    private String normalTime;

    @ApiModelProperty(value = "里程费用")
    private BigDecimal normalDistanceCost;

    @ApiModelProperty(value = "时长费用")
    private BigDecimal normalTimeCost;

    @ApiModelProperty(value = "其他费用ID")
    private Long otherCostId;

    @ApiModelProperty(value = "总费用")
    private BigDecimal totalCost;

    @ApiModelProperty(value = "是否拼车（0：否、1：是）")
    private Integer isCarpool;

    @ApiModelProperty(value = "是否已评论")
    private Integer isComment;

    @ApiModelProperty(value = "拼车流水号")
    private String carpoolSerialNo;

    @ApiModelProperty(value = "用户来源")
    private String tag;

    @ApiModelProperty(value = "扩展字段1")
    private String expand1;

    @ApiModelProperty(value = "扩展字段2")
    private String expand2;

    @ApiModelProperty(value = "扩展字段3")
    private String expand3;

    @ApiModelProperty(value = "版本号")
    @Version
    private Long version;

    @ApiModelProperty(value = "OrderPersonal版本号")
    @TableField(exist = false)
    private Long versionOrderPersonal;

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "创建人")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    private Long updateUser;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "预约时间")
    private Date appointmentTime;

    @ApiModelProperty(value = "预约结束时间")
    private Date appointmentEndTime;

    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "车辆id")
    private Long vehicleId;

    @ApiModelProperty(value = "等待费")
    private BigDecimal awaitFee;

    @ApiModelProperty(value = "服务费")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "空驶费")
    private BigDecimal emptyDrivingFee;

    @ApiModelProperty(value = "远途费")
    private BigDecimal distanceFee;

    @ApiModelProperty(value = "起步价")
    private BigDecimal startFee;
    @ApiModelProperty(value = "抽成后费用")
    private BigDecimal DrawFee;
    @ApiModelProperty(value = "高德猎鹰服务轨迹ID")
    private Long gpsId;

    @ApiModelProperty(value = "乘车人姓名")
    private String passengerName;

    @ApiModelProperty(value = "接到订单经度")
    private String pickPassengersFlng;

    @ApiModelProperty(value = "接到订单纬度")
    private String pickPassengersFlat;

    @ApiModelProperty(value = "接到订单详细地址")
    private String pickPassengersAddress;

    @ApiModelProperty(value = "到达预约地点经度")
    private String arriveReservationFlng;

    @ApiModelProperty(value = "到达预约地点纬度")
    private String arriveReservationFlat;

    @ApiModelProperty(value = "发起收款经度")
    private String initiatePaymentFlng;

    @ApiModelProperty(value = "发起收款纬度")
    private String initiatePaymentFlat;

    @ApiModelProperty(value = "轨迹id")
    private String trackId;

    public static final String ORDER_NO = "order_no";

    public static final String USER_ORDER_NO = "user_order_id";

    public static final String DRIVER_ID = "driver_id";

    public static final String ORDER_TYPE = "order_type";

    public static final String STRIVE_TIME = "strive_time";

    public static final String PASSENGER_PHONE = "passenger_phone";

    public static final String FLNG = "flng";

    public static final String FLAT = "flat";

    public static final String TLNG = "tlng";

    public static final String TLAT = "tlat";

    public static final String ACTUAL_START_NAME = "actual_start_name";

    public static final String ACTUAL_END_NAME = "actual_end_name";

    public static final String ACTUAL_FLAT = "actual_flat";

    public static final String ACTUAL_FLNG = "actual_flng";

    public static final String ACTUAL_TLAT = "actual_tlat";

    public static final String ACTUAL_TLNG = "actual_tlng";

    public static final String DEPARTURE_TIME = "departure_time";

    public static final String BEGIN_CHARGE_TIME = "begin_charge_time";

    public static final String FINISH_TIME = "finish_time";

    public static final String NORMAL_DISTANCE = "normal_distance";

    public static final String NORMAL_TIME = "normal_time";

    public static final String NORMAL_DISTANCE_COST = "normal_distance_cost";

    public static final String NORMAL_TIME_COST = "normal_time_cost";

    public static final String OTHER_COST_ID = "other_cost_id";

    public static final String TOTAL_COST = "total_cost";

    public static final String IS_CARPOOL = "is_carpool";

    public static final String IS_COMMENT = "is_comment";

    public static final String CARPOOL_SERIAL_NO = "carpool_serial_no";

    public static final String TAG = "tag";

    public static final String EXPAND1 = "expand1";

    public static final String EXPAND2 = "expand2";

    public static final String EXPAND3 = "expand3";

    public static final String VERSION = "version";

    public static final String DELETED = "deleted";

    public static final String CREATE_USER = "create_user";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_USER = "update_user";

    public static final String UPDATE_TIME = "update_time";

    public static final String APPOINTMENT_TIME = "appointment_time";

    public static final String ORDER_STATUS = "order_status";

    public static final String VEHICLE_ID = "vehicle_id";

    public static final String GPS_ID = "gps_id";

    public static final String PASSENGER_NAME = "passenger_name";

    public static final String PICK_PASSENGERS_FLNG = "pick_passengers_flng";

    public static final String PICK_PASSENGERS_FLAT = "pick_passengers_flat";

    public static final String PICK_PASSENGERS_ADDRESS = "pick_passengers_address";

    public static final String ARRIVE_RESERVATION_FLNG = "arrive_reservation_flng";

    public static final String ARRIVE_RESERVATION_FLAT = "arrive_reservation_flat";

    public static final String INITIATE_PAYMENT_FLNG = "initiate_payment_flng";

    public static final String INITIATE_PAYMENT_FLAT = "initiate_payment_flat";

    public static final String TRACK_ID = "track_id";

}
